package com.wanggy.mystore.utils;

import lombok.Generated;
import lombok.Getter;
import lombok.Setter;
import org.junit.jupiter.api.Test;

import java.io.Serializable;

//因为所用响应的结果都采用Json格式的数据进行响应，所以需要实现Serializable接口
//泛型<E>表示响应的数据类型
@Setter
@Getter
public class JsonResult<E> implements Serializable {
    //状态码
    private Integer state;
    //描述信息
    private String message;
    //数据类型不确定，用E标识任何的数据类型，一个类如果声明的有泛型的数据类型，类也要声明为泛型
    private E data;

    //无参构造函数
    public JsonResult() {}

    //将状态码传给构造方法初始化对象
    public JsonResult(Integer state) {
        this.state = state;
    }

    //将状态码贺数据传给构造方法初始化对象
    public JsonResult(Integer state, E data) {
        this.state = state;
        this.data = data;
    }

    //如果有异常，则直接将异常传给构造方法初始化对象
    public JsonResult(Throwable e) {
        this.message = e.getMessage();
    }
}
